package com.example.hospital.service.impl;


import com.example.hospital.mapper.ShiftSwapMapper;
import com.example.hospital.mapper.UserMapper;
import com.example.hospital.pojo.ShiftSwap;
import com.example.hospital.service.ShiftSwapService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class ShiftSwapServiceImpl implements ShiftSwapService {

    @Autowired
    private ShiftSwapMapper shiftSwapMapper;

    @Autowired
    private UserMapper userMapper;

    // 提交调班申请
    @Override
    public void applyShiftSwap(ShiftSwap shiftSwap) {
        shiftSwap.setStatus("待审批");
        shiftSwapMapper.insertShiftSwap(shiftSwap);
    }

    // 获取特定用户的调班申请
    @Override
    public List<ShiftSwap> getShiftsByUserId(Integer userId) {
        return shiftSwapMapper.findByUserId(userId,userId);
    }

    // 获取所有调班申请
    @Override
    public List<ShiftSwap> getAllShiftSwaps() {
        return shiftSwapMapper.findAll();
    }

    // 审批调班申请
    @Override
    public void approveShiftSwap(Integer swapId) {
        ShiftSwap swap = shiftSwapMapper.findById(swapId);
        if (swap != null && swap.getStatus().equals("待审批")) {
            swap.setStatus("已批准");
            shiftSwapMapper.updateShiftSwap(swap);
            // 这里可以添加更改排班的逻辑，例如交换两人的班次
        }
    }

    //拒绝
    public void rejectShiftSwap(Integer swapId) {
        ShiftSwap swap = shiftSwapMapper.findById(swapId);
        if (swap != null && swap.getStatus().equals("待审批")) {
            swap.setStatus("已拒绝");
            shiftSwapMapper.updateShiftSwap(swap);
        }
    }
}
